<?php

use yii\db\Migration;

/**
 * Class m190312_091050_wx_card
 */
class m190312_091050_wx_card extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
        $this->createTable('wx_card', [
            'id'               => $this->primaryKey()->notNull()->unsigned()->comment('微信卡券主键id'),
            'card_id'          => $this->string(64)->notNull()->defaultValue('')->comment('卡券批次card_id'),
            'card_name'        => $this->string(64)->notNull()->defaultValue('')->comment('自定义的卡券名'),
            'card_type'        => $this->string(20)->notNull()->defaultValue('')->comment('卡券类型，代金券、折扣券、兑换券、团购券、优惠券'),
            'logo_url'         => $this->string(128)->notNull()->defaultValue('')->comment('卡券的商户logo，建议300*300'),
            'code_type'        => $this->string(16)->notNull()->defaultValue('')->comment('卡券类型，文本：CODE_TYPE_TEXT，一维码：CODE_TYPE_BARCODE，二维码：CODE_TYPE_QRCODE，二维码无code：CODE_TYPE_ONLY_QRCODE，一维码无code：CODE_TYPE_ONLY_BARCODE，不显示code和条形码：CODE_TYPE_NONE'),
            'brand_name'       => $this->string(36)->notNull()->defaultValue('')->comment('商户名称，上限12个汉字'),
            'title'            => $this->string(27)->notNull()->defaultValue('')->comment('卡券名称，最多9个汉字'),
            'color'            => $this->string(16)->notNull()->defaultValue('')->comment('卡券颜色，Color010-Color100'),
            'notice'           => $this->string(48)->notNull()->defaultValue('')->comment('卡券使用提醒，上限16个汉字'),
            'description'      => $this->text()->notNull()->defaultValue('')->comment('卡券使用说明，上限1024个汉字'),
            'quantity'         => $this->bigInteger(11)->notNull()->defaultValue(0)->comment('卡券库存，上限1亿'),
            'date_type'        => $this->string(20)->notNull()->defaultValue('')->comment('使用时间的类型,固定日期区间:DATE_TYPE_FIX_TIME_RANGE,固定时长:DATE_TYPE_FIX_TERM'),
            'fixed_term'       => $this->smallInteger(4)->notNull()->defaultValue(0)->comment('type为DATE_TYPE_FIX_TERM时专用，领取后多少天内有效'),
            'fixed_begin_term' => $this->smallInteger(4)->notNull()->defaultValue(0)->comment('type为DATE_TYPE_FIX_TERM时专用，表示自领取后多少天开始生效，领取后当天生效填写0'),
            'begin_timestamp'  => $this->bigInteger(11)->notNull()->defaultValue(0)->comment('type为DATE_TYPE_FIX_TIME_RANGE时专用，表示起用时间'),
            'end_timestamp'    => $this->bigInteger(11)->notNull()->defaultValue(0)->comment('卡券过期时间，时间戳'),


            'service_phone'    => $this->string(20)->defaultValue('')->comment('客服电话'),

            'center_title'     => $this->string(24)->defaultValue('')->comment('卡券顶部居中的按钮文字'),
            'center_sub_title' => $this->string(24)->defaultValue('')->comment('入口下方的提示语'),
            'center_url'       => $this->string(128)->defaultValue('')->comment('顶部居中的url，点击外链进入具体业务公众号'),


            'custom_url_name'  => $this->string(15)->defaultValue('')->comment('自定义跳转外链的入口名字'),
            'custom_url'       => $this->string(128)->defaultValue('')->comment('自定义跳转的URL'),
            'custom_url_sub_title' => $this->string(18)->defaultValue('')->comment('显示在入口右侧的提示语'),


            'promotion_url_name'   => $this->string(15)->defaultValue('')->comment('营销场景的自定义入口名称，不超过5个汉字'),
            'promotion_url'    => $this->string(128)->defaultValue('')->comment('入口跳转外链的地址链接'),
            'promotion_url_sub_title'    => $this->string(128)->defaultValue('')->comment('显示在营销入口右侧的提示语'),

            'get_limit'       => $this->smallInteger(4)->defaultValue(50)->comment('每人可领券的数量限制,默认50'),
            'use_limit'       => $this->smallInteger(4)->defaultValue(50)->comment('每人可核销的数量限制，默认50'),
            'can_share'       => $this->tinyInteger(1)->defaultValue(1)->comment('卡券领取页面是否可分享,默认true'),
            'can_give_friend' => $this->tinyInteger(1)->defaultValue(1)->comment('卡券是否可转赠,默认可以'),


            /******每种卡券特有字段*******/
            //团购券
            'deal_detail'     => $this->text()->notNull()->defaultValue('')->comment('团购详情描述'),
            //代金券
            'least_cost'      => $this->bigInteger(10)->notNull()->defaultValue(0)->comment('代金券专用，表示起用金额，单位分，无门槛则值为0'),
            'reduce_cost'     => $this->bigInteger(10)->notNull()->defaultValue(0)->comment('代金券专用，表示减免金额，单位分'),
            //折扣券
            'discount'        => $this->tinyInteger(1)->notNull()->defaultValue(0)->comment('折扣券专用，表示打折额度，30表示打7折'),
            //兑换券
            'gift'            => $this->text()->notNull()->defaultValue('')->comment('兑换券专用，填写兑换内容的名称'),
            //优惠券
            'default_detail'  => $this->text()->notNull()->defaultValue('')->comment('优惠券专用，填写优惠详情'),
            //卡券使用业务类型：线上、线下
            'business_type'    => $this->tinyInteger(1)->notNull()->defaultValue(1)->comment('卡券业务类型，1线上，2线下'),
            //适用门店列表
            'apply_stores'     => $this->string(255)->notNull()->defaultValue('')->comment('适用门店，逗号分隔，为空表示支持全部门店'),
            //适用商品
            'apply_goods'      => $this->string(255)->notNull()->defaultValue('')->comment('适用商品，逗号分隔，为空表示支持全部商品'),
        ], $tableOptions);
    }

    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        echo "m190312_091050_wx_card cannot be reverted.\n";
        return false;
    }

    /*
    // Use up()/down() to run migration code without a transaction.
    public function up()
    {

    }

    public function down()
    {
        echo "m190312_091050_wx_card cannot be reverted.\n";

        return false;
    }
    */
}
